package com.imc.platform.base.role.dao;

import com.imc.platform.base.role.pojo.Role;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.omg.CORBA.OBJ_ADAPTER;

import java.util.List;
import java.util.Map;

/**
*类描述：角色管理dao层接口
*开发者：QY
*创建时间：2018/8/17 15:40
**/

//省去写mapper配置文件的步骤
@Mapper
public interface IRoleMapper {

    /**
    *QY 2018/8/17 15:41
    *方法描述：查询所有角色详情
    **/
    List<Role> queryRoleList();

    /**
    *QY 2018/8/23 14:05
    *方法描述：修改角色状态
    **/
    int updateState(@Param("state")String state, @Param("roleId")String roleId);

    /**
    *QY 2018/8/23 14:05
    *方法描述：批量插入角色成员
    **/
    int insertRoleMember(Map<String,Object> parms);

    /**
    *QY 2018/8/23 14:05
    *方法描述：批量删除角色成员
    **/
    int delRoleMember(Map<String,Object> parms);

    /**
    *QY 2018/8/27 9:52
    *方法描述：删除
    **/
    int delRoleUserById(@Param("roleId") String roleId,@Param("userId") String userId);

    /**
    *QY 2018/8/28 15:49
    *方法描述：根据角色id查角色id
    **/
    List<String>queryUserIdByRoleId(String roleId);

    /**
    *QY 2018/8/28 15:49
    *方法描述：根据用户查是否有用户信息
    **/
    List<Role> queryRoleNameByText(String roleName);

    /**
    *QY 2018/8/29 14:58
    *方法描述：删除角色与用户的关联
    **/
    int delRoleUserByRoleId(String roleId);

    /**
    *QY 2018/8/29 14:59
    *方法描述：删除角色与菜单的关联
    **/
    int delRoleMenuByRoleId(String roleId);

    int delRole(String roleId);

    /**
    *QY 2018/8/29 14:57
    *方法描述：(暂时不用)
    **/
    String querySerialNumber();

    /**
    *QY 2018/9/10 15:07
    *方法描述：获取sn表最大ID
    **/
    String getMaxId(@Param("tableName") String tableName);
    /**
     *QY 2018/9/10 15:07
     *方法描述：获取sn表最大ID
     **/
    int setMaxId(@Param("tableName") String tableName);

    /**
    *QY 2018/9/10 15:32
    *方法描述：修改最大ID
    **/
    int updateMaxId(@Param("tableName") String tableName,@Param("maxId") String maxId);
    /**
    *QY 2018/9/4 15:35
    *方法描述：添加角色与表的关联
    **/
    int addRoleMenu(Map<String,Object>resMap);
    /**
    *QY 2018/8/29 14:57
    *方法描述：添加成员
    **/
    int addRole(@Param("parms")Map<String,Object>parms);

    /**
    *QY 2018/9/10 15:32
    *方法描述：根据用户ID查询角色ID
    **/
    List<String> queryRoleIdByUserId(String userId);

    String queryRoleNameByRoleId(String roleId);

    void delRoleUserByMemberList(@Param("memberList") List<String>memberList);

}
